package com.jnr.huatu;

import android.app.Application;
import android.content.Context;

import com.nostra13.universalimageloader.cache.disc.naming.HashCodeFileNameGenerator;
import com.nostra13.universalimageloader.cache.memory.impl.LruMemoryCache;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import com.nostra13.universalimageloader.core.assist.QueueProcessingType;

/**
 * 初始化
 * @author：景辉
 * created at 2017/2/14 0014 上午 10:49
 */

public class App extends Application {
    private Context mContext;
    @Override
    public void onCreate() {
        super.onCreate();
        mContext = this;
        //初始化异常处理
//        CrashHandler catchHandler = CrashHandler.getInstance();
//        catchHandler.init(getApplicationContext());

        //创建默认的ImageLoader配置参数
        ImageLoaderConfiguration config = new ImageLoaderConfiguration.Builder(mContext)
                .memoryCacheExtraOptions(480, 800) //内存缓存文件的最大长宽
//                .diskCacheExtraOptions(480, 800, null)  // 本地缓存的详细信息(缓存的最大长宽)，最好不要设置这个
        .threadPoolSize(3) // default  线程池内加载的数量
                .threadPriority(Thread.NORM_PRIORITY - 2) // 设置当前线程的优先级
                .tasksProcessingOrder(QueueProcessingType.FIFO) //设置拒绝缓存在内存中一个图片多个大小 默认为允许
                .denyCacheImageMultipleSizesInMemory()// 设置缓存显示不同大小的同一张图片
                .memoryCache(new LruMemoryCache(2 * 1024 * 1024)) //可以通过自己的内存缓存实现
                .memoryCacheSize(2 * 1024 * 1024)  // 内存缓存的最大值
                .memoryCacheSizePercentage(13) // 设置内存缓存最大大小占当前应用可用内存的百分比，默认是当前应用可用内存的1/8
//                .diskCache(new File(Environment.getExternalStorageDirectory() + "mydata/imagecaches"))) //可以自定义缓存路径
                .diskCacheSize(50 * 1024 * 1024) // 50 Mb sd卡(本地)缓存的最大值
                .diskCacheFileCount(100)  // 可以缓存的文件数量
                // default为使用HASHCODE对UIL进行加密命名， 还可以用MD5(new Md5FileNameGenerator())加密
                .diskCacheFileNameGenerator(new HashCodeFileNameGenerator())
//                .imageDownloader(new BaseImageDownloader(mContext)) // 设置默认最大连接时间
//                .imageDecoder(new BaseImageDecoder()) // default
                .defaultDisplayImageOptions(DisplayImageOptions.createSimple()) // 设置自定义的DisplayImageOptions
                .writeDebugLogs() // 打印debug log
                .build(); //开始构建

        //Initialize ImageLoader with configuration.
        ImageLoader.getInstance().init(config);

    }
}
